iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
Modern Web

Rails guide / Ruby API study系列 第 5

[ Rails guide study ] Day05 Primary key / Foreign key介紹(Active Record Basics part2)

  • 分享至 

  • xImage
  •  

首先,來聽一首歌吧
Yes
為什麼挑這首呢?因為今天要講的跟 "key" 有些關聯 XD


上一次講完 Avtive record 的解釋後,今天繼續往下看,網站在這邊
2.1 這邊的 model 命名慣例, rails guide 寫了很多說明,但重點其實就是一句話而已:
model 名稱大寫單數, table 名稱小寫複數


2.2 這個段落中提到了 primary key 跟 foreign key,他們是什麼呢?

primary key:

對於某個表格來說,primary key 是其中一個或多個欄位,他們被用來辨識每筆資料,再白話一點來說,就像是每一筆資料在這個表格中的地址,要注意的是每個表格的 primary key 只能有一種設定,就像你家地址不會有兩種寫法,但他可以同時有多個欄位
但,什麼情況下有多個欄位呢? 從 Microsoft 的網站中我找到了一個例子

這張圖表中,每個ProductID 可以不是唯一的,因為同一個產品可以很多個製造商製作,每個製造商也不是唯一的,因為一個製造商可以做很多產品
But!霸特!同時符合同一個製造商跟某個產品的組合只會有一種,這時候這兩個合起來就是這張表格的 primary key

在 rails 中,就算你不寫,在生出每一個表格的時候,他也預設會幫你做出一個 id 的欄位,並用 id 號碼作為 primary key 來辨識每一筆資料

foreign key:

在多個表格的狀況下,foreign key 是用來做不同表格之間的關聯,比方說今天 A 表格是記錄全班同學的名字跟學號, B 表格是全班同學的學號跟成績,他們之間可以用來當作關聯的很明顯是學號,因為這個資訊兩邊都有,我可以從 A 表格的學號去找到 B 表格某位特定同學的成績,因此學號就是 foreign key
在一張表格中,可以跟很多表格有關聯性的欄位,因此很常 foreign key 不只有一個,當然也不一定要是 primary key

明天會接著這篇繼續往下看喔!會介紹基本的 CRUD 操作跟部分覆寫原先設定的方法~

參考資料:
Rails Guide

Foreign and Primary Key Differences

主要與外部索引鍵條件約束

本文章同步分享於 http://anthonychao.site/


上一篇
[ Rails guide study ] Day04 Active Record 介紹(Active Record Basics part1)
下一篇
[ Rails guide study ] Day06 如何複寫Model table 慣例 / 資料存取刪除簡介 (Active Record Basics part3)
系列文
Rails guide / Ruby API study30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言